package mock.bean;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @CreateDate 2018-09-05
 */
@Data
public class SoPO implements Serializable {
    /**
     * 格式：150905xxxxxxxx2657 纯数字 6位日期+8位数字+1校验位+3位用户id
     */
    private String orderCode;
    /**
     * 父order_code
     */
    private String parentOrderCode;
    /**
     * 1 子单 2 父单
     */
    private Integer isLeaf;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 用户下单手机号
     */
    private String userMobile;
    /**
     * 下单用户账号
     */
    private String userName;
    /**
     * 商家ID
     */
    private Long merchantId;
    /**
     * 经销商id
     */
    private Long customerId;
    /**
     * 经销商名称
     */
    private String customerName;
    /**
     * 经销商类型
     */
    private String customerType;
    /**
     * 订单金额(不含运费/运费险)
     */
    private BigDecimal orderAmount;
    /**
     * 订单商品总金额
     */
    private BigDecimal productAmount;
    /**
     * 币种编码
     */
    private String currency;
    /**
     * 币种名称
     */
    private String currencyName;
    /**
     * 币种汇率
     */
    private BigDecimal currencyRate;
    /**
     * 币种符号
     */
    private String currencySymbol;
    /**
     * 税费
     */
    private BigDecimal taxAmount;
    /**
     * 3，处理中 4，系统处理中 5，待出库 6，订单已经转do 21，订单已经出库 22，订单已经开始派送 25，用户已经收货 31，送货失败 34，订单已经取消 35，订单已经完成
     */
    private Integer orderStatus;
    /**
     * 0:账户支付 1:网上支付 2:货到付款(货到付)3:pos机(货到付)4:货到转账(货到付)5:货到付支票 (货到付)6:货到刷支付宝(货到付)21:邮局汇款22:银行转账 31:分期付款 32:合同账期
     */
    private Integer orderPaymentType;
    /**
     * 0.未支付1.已支付(部分或全部)待审核（银行转账，邮局汇款支付方式时）2.部分支付3.已支付
     */
    private Integer orderPaymentStatus;
    /**
     * 支付确认时间
     */
    private Date orderPaymentConfirmDate;
    /**
     * 运费(实收)
     */
    private BigDecimal orderDeliveryFee;
    /**
     * 包邮券优惠金额
     */
    private BigDecimal orderDeliveryFree;
    /**
     * 支付-抵用券支付的金额
     */
    private BigDecimal orderPaidByCoupon;
    /**
     * 订单已优惠金额(满立减)
     */
    private BigDecimal orderPromotionDiscount;
    /**
     * 订单赠送的积分
     */
    private BigDecimal orderGivePoints;
    /**
     * 取消原因ID
     */
    private Integer orderCancelReasonId;
    /**
     * 取消时间
     */
    private Date orderCancelDate;
    /**
     * 取消备注
     */
    private String orderCancelRemark;
    /**
     * 订单取消原因
     */
    private String orderCsCancelReason;
    /**
     * 取消操作人类型：0:用户取消 1:系统取消 2:客服取消
     */
    private Integer orderCanceOperateType;
    /**
     * 取消操作人用户名
     */
    private String orderCanceOperateId;
    /**
     * 配送方式类型
     */
    private String orderDeliveryMethodId;
    /**
     * 订单备注(用户)
     */
    private String orderRemarkUser;
    /**
     * 订单备注(商家给用户看的)
     */
    private String orderRemarkMerchant2user;
    /**
     * 订单备注(商家自己看的)
     */
    private String orderRemarkMerchant;
    /**
     * 订单来源  0：普通 1：团购 2：询价 3：租赁  4 拼单。
     */
    private Integer orderSource;
    /**
     * 订单渠道 : 订单来源渠道 ：1 pc   2 android    3  微信    4 ios    5 h5
     */
    private Integer orderChannel;
    /**
     * 订单促销状态：1001 拼团中，1002拼团成功，1003拼团失败，1004 参团失败，1006 参团成功，1005 取消参团；3001 待补货，3002、补货中 3003 补货成功， 3004 已取消
     */
    private Integer orderPromotionStatus;
    /**
     * 收货人地址
     */
    private String goodReceiverAddress;
    /**
     * 收货人地址邮编
     */
    private String goodReceiverPostcode;
    /**
     * 收货人姓名
     */
    private String goodReceiverName;
    /**
     * 收货人手机
     */
    private String goodReceiverMobile;
    /**
     * 收货人国家
     */
    private String goodReceiverCountry;
    /**
     * 收货人省份
     */
    private String goodReceiverProvince;
    /**
     * 收货人城市
     */
    private String goodReceiverCity;
    /**
     * 收货人地区
     */
    private String goodReceiverCounty;
    /**
     * 收货人四级区域
     */
    private String goodReceiverArea;
    /**
     * 身份证号码
     */
    private String identityCardNumber;
    /**
     * 订单出库时间
     */
    private Date orderLogisticsTime;
    /**
     * 订单收货时间
     */
    private Date orderReceiveDate;
    /**
     * 0：未删除1：回收站-用户可恢复到02：用户完全删除(客服可协助恢复到0或1)
     */
    private Integer orderDeleteStatus;
    /**
     * 是否可用:默认0否;1是
     */
    private Integer isAvailable;
    /**
     * 改价前订单金额(不含运费/运费险)
     */
    private BigDecimal orderBeforeAmount;
    /**
     * 改价前运费(实收)
     */
    private BigDecimal orderBeforeDeliveryFee;
    /**
     * 订单来源系统
     */
    private String sysSource;
    /**
     * 外部系统订单编号
     */
    private String outOrderCode;
    /**
     * 评论状态 0 :未评论 1 已评论
     */
    private Integer commentStatus;
    /**
     * 商家名称
     */
    private String merchantName;
    /**
     * 平台备注
     */
    private String orderRemarkCompany;
    /**
     * 订单完成时间
     */
    private Date orderCompleteDate;
    /**
     * 订单类型（商品维度）: 0 普通 1 生鲜类 2 服务类 3 虚拟
     */
    private Integer orderType;
    /**
     * 收货人国家code
     */
    private String goodReceiverCountryCode;
    /**
     * 收货人省份code
     */
    private String goodReceiverProvinceCode;
    /**
     * 收货人城市code
     */
    private String goodReceiverCityCode;
    /**
     * 收货人四级区域code
     */
    private String goodReceiverAreaCode;
    /**
     * 店铺Id
     */
    private Long storeId;
    /**
     * 店铺名称
     */
    private String storeName;
    /**
     * 订单标签
     */
    private String orderLabel;
    /**
     * 预计发货日期
     */
    private Date expectDeliverDate;
    /**
     * 流程运行状态 0 未运行 1运行中 2运行结束 3运行异常
     */
    //private Integer flowStatus;
    /**
     * 收银员
     */
    private String cashier;

    /**
     * 订单创建时间
     */
    private Date orderCreateTime;

    private String sourceCode;
    /**
     * 就餐类型 1堂吃 2外带
     */
    private Integer mealType;
    /**
     * 订单设备号
     */
    private String equipCode;
    /**
     * 桌号
     */
    private String tableName;
    /**
     * 就餐人数
     */
    private Integer mealsNum;
    /**
     * 订单序号
     */
    private String seqNo;
    /**
     * 扩展信息，以json形式存储
     */
    private String extInfo;
    /**
     * 是否推送IMS获取税额 0-否，1-是,2-失败
     */
    private String imsFlg;
    /**
     * 推送计算税额失败原因
     */
    private String returnMessage;
    /**
     * 平台佣金
     */
    private BigDecimal platformCommission;
    /**
     * 平台承担优惠金额
     */
    private BigDecimal platformRate;

    /**
     * 预计送达时间
     */
    private Date estimatedTimeOfArrival;

    /**
     * 店铺编码
     */
    private String storeCode;

    /**
     * pos机编号
     */
    private String posCode;

    /**
     * 小票票号
     */
    private String posTicket;

    /**
     * 拣货员id
     */
    private Long pickId;

    /**
     * 拣货员姓名
     */
    private String pickName;

    /**
     * 是否接受部分发货 0：否 1：是
     */
    private Integer partialShipmentStatus;

    /**
     * 订单总重
     */
    private BigDecimal totalWeight;

    /**
     * 配送时间
     */
    private Date deliverTime;

    /**
     * 用户选择的配送类型：10000 门店自提；10001 普通快递 ;    10002 指定日送货;  10003 慢送；     10004 准时送   ;    10005, 自提柜自提
     */
    private String orderDeliveryServiceType;

    /**
     * 门店自提的merchant_id
     */
    private Long orderDeliveryMerchantId;


    /**
     * 物流类型。如果是自提订单时值为“自提”；如果是非自提订单存的是具体配送方式：A专车B专车生鲜C大仓D大仓生鲜E大仓远城区
     */
    private String orderDeliveryMethodType;

    /**
     * 是否自配送（0：自配送）
     */
    private Integer deliveryMethod;

    private Date changeDeliveryMethodTime;//蜂鸟拒单或延迟门店自配送记录时间

    /**
     * 卖家id
     */
    private Long distributorId;
//    private String goodReceiverCountryId;
//    private String goodReceiverProvinceId;
//    private String goodReceiverCityId;
//    private String goodReceiverAreaId;

    private String errorStatus;

    private Integer shortPickStatus; //短拣处理状态：0-待处理 1-处理中 2-处理失败 100-处理成功

    /**
     * 餐具份数字典ID
     */
    private Long dictionaryId;

    /**
     * 配送时间类型：0 今日达  1次日达
     */
    private Integer deliveryTimeType;

    /**
     * 拼单标识 1 是
     */
    private Integer collageType;

    /**
     * 异动收银，是否会员订单 1 会员；0 非会员；
     */
    private Integer isMember;

    // 打包费
    private BigDecimal packageBagMoneyYuan;

    public BigDecimal getPackageBagMoneyYuan() {
        return packageBagMoneyYuan;
    }

    public void setPackageBagMoneyYuan(BigDecimal packageBagMoneyYuan) {
        this.packageBagMoneyYuan = packageBagMoneyYuan;
    }

    /**
     * pos优惠券编码
     */
    private String posCouponCode;

    /**
     * pos优惠券id
     */
    private String posCouponId;

    /**
     * 是否可售后标记 0 :否 1：是
     */
    private Integer aftersalesFlag;

    /**
     * 配送费 单位元
     */
    private BigDecimal sendFee;

    /**
     * 用户实付金额，单位：元
     */
    private BigDecimal userFee;

    /**
     * 商户其他优惠 单位元
     */
    private BigDecimal discountFee;

    /**
     * 商户应收金额（蜂鸟物流），单位：元（自配送为用户实付）
     */
    private BigDecimal shopFee;

    private Integer downFlag;
    //	设置配送距离：0是不超配送距离1是超配送距离
    private Integer deliveryRange;

    /**
     * 包装费
     */
    private BigDecimal packingExpense;

    /**
     * 冷冻包装费
     */
    private BigDecimal frozenPackingExpense;

    /**
     * 订单推广类型
     */
    private Integer orderSpreadType;

    /**
     * 立即配送 0-否 1-是
     */
    private Integer deliveryNow;

    /**
     * 期望收货日期_截止
     */
    private Date expectReceiveDateEnd;

    /**
     * 精确地址
     */
    private String exactAddress;

    /**
     * 前台取消订单锁定
     */
    private Integer orderDataExchangeFlag;

    /**
     * 期望收货日期_开始
     */
    private Date expectReceiveDateStart;

    /**
     * 历史订单标志：0 不是历史订单 1 是历史订单
     */
    private Integer historyFlag;

    /**
     * 发货状态，0：未发货 10：部分发货 20：已发货
     */
    private Integer deliveryStatus;

    /**
     * 是否接受部分发货 0：不接受 1：接受
     */
    private Integer isAcceptPartialShipment;

    /**
     * 订单经纬度
     */
    private BigDecimal longitude;

    /**
     * 订单经纬度
     */
    private BigDecimal latitude;

    private BigDecimal giftCardAmount;

    /**
     * 会员权益折扣金额
     */
    BigDecimal memberDiscount;

    private Long companyId;
}
